Observer Pattern: intro
#udemy
#Unity
オブジェクト同士を通信する方法
ゲーム内のオブジェクトがインタラクトするには、
お互いの State を通知する方法が必要
Hard Coding
https://gyazo.com/b4a1db4795455ee10aa0c67d13b3fcc0
Eggオブジェクトが他のオブジェクトと通信するのを、
Eggのプロパティに他のオブジェクトをもたせる場合
Awake() Start()で追加
使うときにプロパティ参照
ある意味、コンポーネント志向(プロパティに別のオブジェクトを持つ)
これはかなり密結合なパターンで
相手が突然NULLになったりするとバグる可能性が非常に高い
https://gyazo.com/971ed8ffb5bc09ed112cd4fbd37b9c50
The Observer Pattern
https://gyazo.com/2ba575606a0d58aa31ce5afa9390e107
Event Dispacher & Listener Pattern とも言える。
複数のNotifier
Eventを発信する
受信先の返事は効かない(非同期)
複数のObserver
関心のあるEventをlistenする
このパターンを採用すると、プログラム全体の中断や、大規模なリファクタリングが必要なくなる。
イベントシステムとも言える。
まとめ
Observer Pattern
オブジェクト同士の通信を実装する際に、モジュール間を疎結合にする仕組み
複数のNotifierとObserverがいる
Godot の signal, group通信もコレと似たような仕組み